package com.cw.service;

import com.baomidou.mybatisplus.extension.service.*;
import com.cw.dto.InpatientRegistrationCondition;
import com.cw.entity.*;
import com.cw.request.*;
import java.util.*;

/**
 * <p>
 * 患者信息 服务类
 * </p>
 *
 * @author smq
 * @since 2021-04-27
 */
public interface IPatientInfoService extends IService<PatientInfo> {

    /**
     * 根据就诊号获取病人姓名
     *
     * @param visitNo
     * @return
     */
    PatientInfo getPatient(String visitNo, String visitTypeCode);


    /**
     * 根据病人id获取病人详情
     *
     * @param id
     * @return
     */
    PatientInfo getPatientInfo(String id);

    /**
     * 根据床位id获取病人详情
     *
     * @param bedId
     * @return
     */
    PatientInfo getPatientDetail(String bedId);


    List<PatientInfo> getEemptyPatientList(EemptyPatientRequest eemptyPatientRequest);

    /**
     * 新增住院登记-手工录入
     * @param patientInfo 新增住院登记
     * @author ly
     * @date 2021/4/29 13:52
     * @return boolean
     */
    boolean insertPatientInfo(PatientInfo patientInfo);

    /**
     * 住院登记记录列表
     * @param condition 查询条件
     * @author ly
     * @date 2021/4/29 14:56
     * @return java.util.Map<java.lang.String,java.lang.Object>
     */
    Map<String, Object> inpatientRegistrationList(InpatientRegistrationCondition condition);

    /**
     * 编辑住院登记
     * @param patientInfo 编辑对象
     * @author ly
     * @date 2021/4/30 14:12
     * @return boolean
     */
    boolean updatePatientInfo(PatientInfo patientInfo);

    /**
     * 逻辑删除
     * @param id 主键
     * @author ly
     * @date 2021/4/30 14:22
     * @return boolean
     */
    boolean updateDeleteFlagToZero(String id);

    ThisIiPrepayin selectPatientInfoByIdenno(String idenno);
}
